1. Field of the Invention
The present invention relates to a control system of a numeric machine tool with a reusable software structure.
2. Description of the Related Art
EP 0 524 344 B1 discloses a configurable machine tool control that includes several task-oriented units, for example a numerical control and a programmable logic controller, an operating unit and a communications area with a network interface. Moreover, at least one functional object, which is realized in software, or in software and hardware and which can perform a function, is provided. This functional object is subdivided into a procedure portion, a communications portion and possibly an operating portion. In addition, at least one object manager is provided, which manages at least two functional objects, in particular synchronizes their information exchange. This control structure is realized on at least one data processing installation, which processes the data from the functional objects and the object manager, and which itself is designed as a task-oriented unit. The functional objects are combined into processes. In this case as many processes are formed as data processing installations are provided, and one process is serviced by each data processing installation.
It is not known from EP 0 524 344 B1 to design the control system in such a way that its principal software structure can be used again.
An object-oriented control for machine tools is known from EP 0 657 043 B1, wherein a sequence of objects is formed from object classes. Based on the control disclosed in EP 0 524 344 B1, object classes and objects are disclosed in EP 0 657 043 B1, which are required for the realization of a conventional functionality of a control. Parts of this are, for example, object classes for types of processing, geometry, kinematics and technology data, as well as control data types and an object class called process control. Any arbitrary number of objects can be created from each object class, each of which respectively contains its own data range, a messenger mechanism for communication with other objects, and a procedure portion for executing methods of processing, geometry, kinematics and technology. Because of the derivation of several objects from one object class, these objects partially have an identical, or at least similar, program code which they have inherited from the object class. Furthermore, the object classes are also mapped as abstract data models in the internal control data storage, because of which abstract application-specific data types can be complemented, and application-specific object distinctions can be modified. The user input is interpreted by the process control and leads to the activation of the selected objects. The selected objects communicate with each other and, by this network-like linkage, constitute a functional unit of the control which is capable of running.
Although it is already known from EP 0 657 043 B1 to pass on properties of an object class to an object of this class, and to store abstract data models for the object classes, which can be changed by the programmer, this only relates to the objects. Since one object always implements at least one specific function of the control, and therefore of the machine, the objects need to have machine-specific characteristics, which makes them incompatible for controlling another machine. Therefore it is not possible as a rule to reuse objects without changing them.
A CNC control system is known from EP 0 717 866 B1, which contains an object-oriented program, in which objects exchange object-oriented information. The objects are divided into classes in the object-oriented program, for example a process class containing work processes such as drilling, gear-cutting, broaching, etc., which are executed by machine components. In this case one class always contains similar objects, i.e. objects which agree in their basic structure. Because of the uniform basic structure of the objects of a class, there is the possibility that selected properties of the respective class are inherited by the new object in the course of producing new objects. A further object class includes machine components, for example a spindle, shafts, a turntable, etc. Furthermore, object classes are provided for the kernel, with a motion and a logic controller as objects, for platform services, for the operating system and the device driver. When operating the control it is necessary for messages to be exchanged between the individual objects. For example, for a drilling operation a message regarding the number of revolutions of the drill is transmitted by the drill object to the spindle object, furthermore messages regarding the position of the hole are transmitted to the objects of the axes involved, etc. In this case a standard interface for the messages is provided, so that it has a universal structure and can be designed independently of the objects involved. With an object which receives or transmits messages regarding the movement, this standard interface for message exchange is realized by a software kernel, which is intended to be operated in real time and receives and transmits messages.
It is also not disclosed in EP 0 717 866 B1, how the structure of the control software is to be designed in order to make possible a reuse of the software design in connection with a similar numerical control.
The term framework is known from the book “Entwurfmuster” [Design Model] by Erich Gamma and Richard Helm, published in 1996 by Addison-Wesley, and the book “Objektorientierte Software—Entwicklung am Beispiel von ET++” [Object-Oriented Software Development in Accordance with the Example of ET++] by Erich Gamma, published in 1992 by Springer. A number of cooperating classes is understood as a framework, which represent the elements of a reusable design for a specific type of software. A framework offers an architectural aid when dividing the design into abstract classes and when defining their competences and interactions. A designer adapts the framework to a specific application by forming subclasses of the framework classes and putting their objects together. Therefore a framework is used by a programmer for fixing the software architecture of a group of related applications. The reuse of a design complements the reuse of the code already known from the object-oriented software design.
It is known from the article entitled “Framework—Basis eines Automatisierungssystems” [Framework—A Basis for an Automation System] by Georg Süss, published in etz, vol. 21/1998, pp. 22 to 25, that a framework not only makes possible a mutually used data storage, but also permits the realization of an integrated approach for the description and matched execution of a total application in a distributed architecture. For this purpose, for automated applications a framework must be based on Windows NT, in order to make possible the structuring of the total application into objects by the component object model and the distribution of the components of a system via several computers by the distributed component object model. In that case an automation framework offers the possibility of collecting the individual components of a distributed automation solution centrally in a system-wide data storage. Therefore this information is immediately available to each computer in an identical way. Moreover—in case of a subdivision of the application into individual objects—the framework provides the management of these objects and their assignment to individual network stations. This makes possible the dynamic displacement of individual objects at runtime, by which an improved utilization of the computers can be achieved. Moreover, further stations can be dynamically integrated into the application network for the running time by this.
It is known from the article entitled “Softwarekonzepte für eine steuerungsintegrierte Werkzeugüberwachung” [Software Concepts for Control-Integrated Tool Monitoring] by I. Suwalski, R. Urban and J. Burger, published in ZWF 92 (1997) 9, pp. 436 to 439, that the software frameworks have been developed from the area of object-oriented software technologies. A framework includes a number of cooperating classes, which determine the architecture of the application. Therefore, by using a framework, the reuse of a design is stressed over the reuse of a code. Problem-specific algorithms are decoupled from the design by using frameworks. The abstraction of the design of the system from the implementation of problem-specific algorithms achieved by this makes a faster development possible, leads to similar structures and simpler maintenance. Furthermore clear, structured and lean documentation is also made possible. This is explained by the example with frameworks which have predetermined the basic mechanisms of communication and the structure of the implementation as a state model for individual processes. Flexibility is achieved by behavior models, whose algorithmic characteristics are implemented for the respective application.